<?php

class Marca_Model extends CI_Model {

    const STR_NOMBRE_TABLA = 'marca';

    /**
     * Constructor
     * @author Fernando Esteban Valerio
     */
    function __construct() {
        parent::__construct();
    }
    /**
     * Obtener la información de una marca determinada.
     * @author Fernando Esteban Valerio
     * @param int $idMarca Id Marca
     */
    function getMarca($idMarca) {
        $this->db->where('id_marca', $idMarca);
        $this->db->where('id_estado', INT_ESTADO_ACTIVO);
        $query = $this->db->get(self::STR_NOMBRE_TABLA);
        return $query->result();
    }

    /**
     * Obtener las marcas registradas en el sistema.
     * @author Fernando Esteban Valerio
     * @return array
     */
    function getListMarca() {
        $this->db->where('id_estado', INT_ESTADO_ACTIVO);
        $this->db->order_by('nombre', 'ASC');
        $query = $this->db->get(self::STR_NOMBRE_TABLA);
        return $query->result();
    }
    
    /**
     * Metodo que permite insertar en la tabla proveedor_marca
     * las marcas que asigne un proveedor
     * @author Leidy Uribe Marcos
     */
    function insert_proveedor_marca($data, $md){
    	$this->db->set('id_persona', $data['id_proveedor']);
    	$this->db->set('id_marca', $md);
    	$this->db->insert('proveedor_marca');
    }
    
    /**
     * Metodo que permite ver si existen marcas asignadas por un proveedor
     * @author Leidy Uribe Marcos
     */
    function getconmarcas($data){
    	$this->db->select('marca.nombre AS nombre, marca.id_marca AS id');
    	$this->db->from('marca');
    	$this->db->join('proveedor_marca', 'marca.id_marca = proveedor_marca.id_marca');
    	$this->db->join('solicitud_usuario', 'solicitud_usuario.id_solicitud_usuario = proveedor_marca.id_persona');
    	$this->db->join('tabla_maestra', 'tabla_maestra.id_tabla_maestra = proveedor_marca.id_estado');
    	$this->db->where('tabla_maestra.nombre', STR_ESTADO_ACTIVO);
    	$this->db->where('solicitud_usuario.id_solicitud_usuario', $data['id_persona']);
    	$this->db->order_by('marca.id_marca');
    	$query = $this->db->get();
    	return $query->result();
    }
    
    /**
     * Metodo que permite obtener todas las marcas a excepcion de las que ya hayan sido asignadas
     * por un proveedor
     * @author Leidy uribe Marcos
     */
    function getsinmarcas($data){
    	$query = $this->db->query('SELECT marca.nombre AS nombre, marca.id_marca AS id
FROM marca, tabla_maestra
WHERE marca.id_estado = tabla_maestra.id_tabla_maestra AND
tabla_maestra.nombre = "'. STR_ESTADO_ACTIVO .'" AND
marca.nombre
NOT IN (
SELECT marca.nombre
FROM marca, proveedor_marca, solicitud_usuario
WHERE marca.id_marca = proveedor_marca.id_marca AND
solicitud_usuario.id_solicitud_usuario = proveedor_marca.id_persona AND
proveedor_marca.id_estado = tabla_maestra.id_tabla_maestra AND
tabla_maestra.nombre = "'. STR_ESTADO_ACTIVO .'" AND
solicitud_usuario.id_solicitud_usuario = "' . $data['id_persona'] . '")');
    	return $query->result();
    }

}
